/**
 * 
 */
package org.xelnaga.defiler.business;

import java.util.List;

import org.jboss.seam.wiki.core.nestedset.query.NestedSetNodeWrapper;
import org.xelnaga.defiler.domain.FolderModel;

/**
 * @author qijb
 *
 */
public interface FolderAPI {
	List<FolderModel> getTopNavigation(Long siteInode);
	
	/**
	 * 
	 * @param siteInode
	 * @param startLevel
	 * @param depth
	 * @param currentPath
	 * @return
	 */
	NestedSetNodeWrapper<FolderModel> getNavigation(Long siteInode, 
			Integer startLevel, Long depth, String currentPath);
	
	/**
	 * 当前目录的所有上级目录
	 * @param inode
	 * @return
	 */
	List<FolderModel> getAncestorListByInode(Long inode);
	
	/**
	 * 
	 * @param inode
	 * @return
	 */
	List<FolderModel> getSiblingListByInode(Long inode);
	
	/**
	 * 
	 * @param inode
	 * @return
	 */
	FolderModel getByInode(Long inode);
	
	/**
	 * 需要判断此目录是否具有下级目录，如果没有的话，则返回其上级目录
	 * @param inode
	 * @return
	 */
	FolderModel getCurrentOrParentByInode(Long inode);
	
	boolean hasChildren(FolderModel folder);
	/**
	 * 当前目录的所有子目录
	 * @param inode
	 * @return
	 */
	List<FolderModel> getChildrenListByInode(Long inode);
	
	/**
	 * 当前频道的推荐子频道
	 * @param inode
	 * @return
	 */
	List<FolderModel> getRecommandListByInode(Long inode, Integer count);
}
